package mpbe.estructura.secciones.hormigon_armado;

/*
 * Este codigo es software libre y se encuentra licenciado 
 * bajo los términos de la Licencia Pública General de GNU versión 3 
 * según se encuentra publicada por la Free Software Foundation.
 * http://www.gnu.org/licenses/gpl.html
 * 
 * Autor: Martin Pablo Bellanca <martin.bellanca@gmail.com>
 * web: http://mpbe.blogspot.com/
 */

import java.util.Iterator;
import java.util.Vector;

/**
 * @author mpbe
 *
 */
public class Barras_Redondas {
	private Vector <Barra_Redonda> _Barras;
	
	public int sizeBarras() {return _Barras.size(); }//ver si devuelve el valor 
	public Barra_Redonda getBarra(int valor) {return _Barras.get(valor);}
	public void addBarra(double X, double Y, double Diametro) {
		Barra_Redonda arg0 = null;
		arg0.posX=X; arg0.posY=Y; arg0.diametro=Diametro;
		_Barras.add(arg0);
	}
	public void addBarra(Barra_Redonda Barra) {
		_Barras.add(Barra);
	}
	public void addPlanoBarrasX(int can_barras, double Xini, double Xfin, double Y, double diametro) {
		Barra_Redonda arg0 = null;
		arg0.posY=Y; arg0.diametro=diametro;
		double intervalo=(Xfin-Xini)/(can_barras-1);
		for (double i=Xini; i<Xfin; i+=intervalo){
			arg0.posX=i;
			_Barras.add(arg0);
		}
	}
	public void addPlanoBarrasX(int can_barras, double Y, double diametro) {
		Barra_Redonda arg0 = null;
		arg0.posX=999999; arg0.posY=Y; arg0.diametro=diametro;
		for (int i=0; i<can_barras; i++){_Barras.add(arg0);}
	}
	public void addPlanoBarrasY(int can_barras, double X, double Yini, double Yfin, double diametro) {
		Barra_Redonda arg0 = null;
		arg0.posX=X; arg0.diametro=diametro;
		double intervalo=(Yfin-Yini)/(can_barras-1);
		for (double i=Yini; i<Yfin; i+=intervalo){
			arg0.posY=i;
			_Barras.add(arg0);
		}
	}
	public void addPlanoBarrasY(int can_barras, double X, double diametro) {
		Barra_Redonda arg0 = null;
		arg0.posX=X; arg0.posY=999999 ;arg0.diametro=diametro;
		for (int i=0; i<can_barras; i++){_Barras.add(arg0);}
	}
	public void setBarra(int valor, Barra_Redonda barra) {_Barras.set(valor, barra);}
	public void removeBarra(int valor) {_Barras.remove(valor);}
	public void clearBarras() {_Barras.clear();}
	public Iterator getIterator() {return _Barras.iterator();}

	static public double areaBarra(int diametro){return (Math.PI*diametro*diametro/4);}
	public double areaTotal() {
		double at=0;
		Barra_Redonda barra;
		for (int ii=0; ii<_Barras.size(); ii++) {
			barra=_Barras.get(ii);
			at+=barra.getArea();
		}
		return at;
	}
	
}
